<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>变量声明提升</title>
    </head>
    <body>
        <!-- 变量声明提升
                变量声明提升：你可以提前使用一个稍后才声明的变量，而不会引发异常
                在执行所有代码前，JS有预解析阶段，会预读所有变量的定义
                    console.log(a);   先使用变量
                    var a = 12;       后定义变量
        -->

        <script>
            console.log(a);// 变量声明提升只提升定义而不提升值 所以此行会输出undefined
            var a = 123; 
            console.log(a); // 此行会输出123

            // 变量声明提升注意事项
            // 变量声明的提升是JavaScript的特性，所以经常出面试题
            // 在实际开发时，不要刻意使用变量声明提升特性。一定要先定义并给变量赋初值，然后在使用变量
        </script>
    </body>
</html>